The ability to software pipeline loops is essential to achieving good performance on VLIW architectures. This compiler optimization enables us to more efficiently software pipeline an important class of loops. This new technique is especially beneficial for the class of performance-critical loops which characterize multimedia applications. However, this technique yields improved software pipelining of many other loops as well.
Other solutions either: rely on special purpose hardware to shut off iterations “undo” over-executed instructions; or are software-based as this algorithm but result in less efficient software pipelined schedules.